"""
4.pytest学习.py
python selenium  pytest
pytest 单元测试框架  ,    对 代码进行测试的框架 ,   最小测试对象就是函数.  开发自测.

unittest框架  python .
要求:
    测试代码 : 函数 必须以 test
             类   必须以 Test
             文件  必须  test开头

创建 独立的testcases包.

断言:
    assert 实际结果  ==  预期结果, "失败描述"   抛出异常 asseertError
    1. 比较 :
        == , <, > ,<= , >= ,!=
    2. 判断值是否为空:
        实际结果 is None
        实际结果 is not None
    3. 判断 值为 True 或者 False
        aseert result

    4. 判断 值是否为另一个值的子集
        in  not in
        assert 实际结果  in 预期结果.
        assert 实际结果  not  in 预期结果.
测试用例的执行顺序:
    test方法从左到右遇到第一位不相同的字母 的 asc码值,进行排序

pytest核心: 夹具  fixture     : 脚手架
定义位置: 在 test文件.py内可以定义,  推荐 conftest.py  管理 夹具方法.
        conftest.py 文件可以有多个,每个文件夹一个,
夹具的优势:
    不用导包, 通过夹具名可以传参
夹具的作用域:
    function 函数      scope=function ,默认是函数级别  ,任意test函数都可以使用
    class    类        scope=class ,  任意test类可以用, 在每个类中只能使用一次.
    module   文件      scope=module , 任意test文件可以使用,  每个文件内只能用一次.
    package  包        任意包都可以使用,  每个包的test函数只能用一次.
    session  项目级别   项目所有test函数都可以使用,但是 项目内只能用一次.
        # 数据库清理
pytest:数据驱动
    实战中 ,代码要求保持不变,把会变的内容存入配置文件,代码运行时从文件中读取需要的数据.
    就叫 代码和数据分离.
    txt . excel ,xml ,ini, json,yaml
"""


